<?php
//4.2.1.2 函数通过引用传递参数
function f(&$name){
    $name .= '丰';
}
$n='张三';
f($n);
echo "姓名=$n\n"; //姓名=张三丰

//4.2.1.3 默认参数都是放在参数列表的最后边
function f2($name,$age=20){
    echo "$name, $age\n";
}
f2('张三'); //张三, 20
f2('李四',22); //李四, 22

//4.2.1.4 可变数量的参数列表
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}
echo sum(1, 2, 3, 4),"\n"; //10
echo sum(),"\n"; //0

//调用函数时参数传递有两种方式：位置参数、命名参数
function f3($name,$age=20,$sex='男'){
    echo "$name, $age, $sex\n";
}
f3('杨柳依依', sex:'女'); // 杨柳依依, 20, 女
f3(sex:'女', name:'杨柳依依',age:18);
//4.2.6 匿名函数
$a=array_map(function($value){
    return $value*$value;
}, [10,20,30]);
print_r($a);

$a=array_map(function($v1,$v2){
    return $v1+$v2;
}, [1,2,3], [10,20,30]);
print_r($a);